// pages/revolutionDate/revolutionDate.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    activeIndex: 0,
    scrollLeft: 0,
    contentScrollTop: 0,
    events: [
      {
        year: "1921",
        title: "中国共产党成立",
        content: "中国共产党第一次全国代表大会在上海召开，宣告中国共产党正式成立..."
      },
      {
        year: "1927",
        title: "南昌起义",
        content: "周恩来、贺龙、叶挺、朱德、刘伯承等领导革命军在南昌发动武装起义..."
      },
      {
        year: "1935",
        title: "遵义会议",
        content: "中共中央政治局在遵义召开扩大会议，确立毛泽东在党和红军中的领导地位..."
      },
      {
        year: "1935",
        title: "遵义会议",
        content: "中共中央政治局在遵义召开扩大会议，确立毛泽东在党和红军中的领导地位..."
      },
      {
        year: "1935",
        title: "遵义会议",
        content: "中共中央政治局在遵义召开扩大会议，确立毛泽东在党和红军中的领导地位..."
      },
      // 更多事件...
    ]
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const targetId = options.id; 
    if (!targetId) {
      console.error('未获取到 id 参数');
      return;
    }
    this.fetchEventsById(targetId);
  },
  async fetchEventsById(targetId) {
    try {
      // 1. 初始化数据库
      const db = wx.cloud.database();

      // 2. 执行查询（等待异步结果）
      const res = await db.collection('events')
        .where({ 
          id: targetId // 匹配数据库中的 id 字段（确保类型一致）
        })
        .get();

      // 3. 检查是否有匹配的数据
      if (res.data.length === 0) {
        console.log(`未找到 id 为 ${targetId} 的事件数据`);
        this.setData({ events: [] }); // 清空数据避免旧数据残留
        return;
      }

      // 4. 提取 events 数组（假设 id 唯一，取第一个结果）
      const eventsData = res.data[0].events;

      // 5. 更新页面 data（触发视图渲染）
      this.setData({
        events: eventsData
      });
      console.log(`成功获取 id 为 ${targetId} 的事件数据:`, eventsData);

    } catch (err) {
      // 处理错误（如网络问题、数据库权限问题）
      console.error(`查询 id 为 ${targetId} 的事件失败:`, err);
      this.setData({ events: [] }); // 清空数据
      wx.showToast({
        title: '数据加载失败',
        icon: 'none'
      });
    }
  },
  // 时间轴点击处理
  handleTimelineTap(e) {
    const index = e.currentTarget.dataset.index;
    this.setData({ activeIndex: index }, () => {
      this.scrollTimelineToCenter(index);
      this.scrollContentToView(index);
    });
  },

  // 时间轴滚动居中
  scrollTimelineToCenter(index) {
    const query = wx.createSelectorQuery();
    query.select(`#node${index}`).boundingClientRect();
    query.selectViewport().scrollOffset();
    query.exec(res => {
      const node = res[0];
      const viewWidth = wx.getWindowInfo().windowWidth;
      const scrollLeft = node.left + node.width/2 - viewWidth/2;
      this.setData({ scrollLeft });
    });
  },

  // 内容滚动定位
  scrollContentToView(index) {
    const query = wx.createSelectorQuery();
    query.select(`#content${index}`).boundingClientRect();
    query.selectViewport().scrollOffset();
    query.exec(res => {
      const contentTop = res[0].top;
      this.setData({ contentScrollTop: contentTop + res[1].scrollTop - 100 });
    });
  },
  

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})